{erl_opts, [
    debug_info
]}.

{project_plugins, [rebar3_hex, rebar3_ex_doc, erlfmt]}.

{gpb_opts, [
    {i, "proto"},
    {o_erl, "src"},
    {o_hrl, "src"},
    {verify, always},
    {strings_as_binaries, true},
    {maps, true},
    {maps_unset_optional, omitted},
    {report_warnings, true},
    {target_erlang_version, 17}
]}.

{ex_doc, [
    {source_url, <<"https://github.com/hexpm/hex_core">>},
    {extras, [<<"README.md">>, <<"CHANGELOG.md">>]},
    {main, <<"readme">>}
]}.

{hex, [{doc, #{provider => ex_doc}}]}.

{erlfmt, [
    write,
    {files, ["{src,test,examples}/*.{hrl,erl,app.src}", "rebar.config"]},
    {exclude_files, ["src/hex_pb_*.erl", "src/hex_erl_tar.{hrl,erl}"]}
]}.

{profiles, [
    {dev, [
        {deps, [
            {gpb, "4.21.1"}
        ]},
        {plugins, [
            {rebar3_gpb_plugin, "2.23.1"}
        ]},
        {overrides, [
            {del, rebar3_gpb_plugin, [
                {deps, [gpb]}
            ]}
        ]},
        {provider_hooks, [
            {pre, [
                {compile, {protobuf, compile}},
                {clean, {protobuf, clean}}
            ]}
        ]}
    ]},
    {test, [
        {erl_opts, [nowarn_export_all]},
        {ct_opts, [
            {create_priv_dir, auto_per_tc},
            {config, "test/ct.config"}
        ]},
        {plugins, [
            rebar3_proper
        ]},
        {deps, [
            {proper, "1.3.0"}
        ]},
        {extra_src_dirs, ["test/support"]}
    ]}
]}.
